Cloud computing is a paradigm of computing in which cloud resources of a cloud service provider may be utilized by cloud clients, which may include individual users and enterprises. The cloud resources of a cloud service provider may include cloud services, cloud applications, cloud platforms, cloud infrastructure, and the like, as well as various combinations thereof. For example, existing cloud computing solutions include Amazon EC2, Microsoft Azure, and Google AppEngine, among others.
The cloud computing model is reshaping the landscape of Internet-provided services, especially given its beneficial nature for individual users and large enterprises alike. For example, for a home user of a home network, having a server that requires use of an additional server to run a particular application, cloud computing is an attractive option since the home user does not have to commit to the cost of purchasing an additional server; rather, the home user merely rents a virtual server from the cloud service provider. For example, for an enterprise, having existing network infrastructure periodically requiring additional resources to accommodate variations in resource demand, cloud computing is an attractive option since the enterprise does not have to commit to hardware purchase costs; rather, the enterprise need only pay the cloud service provider for actual usage of cloud resources.
Disadvantageously, however, the existing cloud computing model lacks a mechanism to effectively integrate resources of the cloud service provider with existing resources of the customer networks. Rather, in the existing cloud computing model, there is a clear boundary demarcating a customer network from cloud-based resources used by the customer network This boundary is maintained primarily due to the fact that the devices within the cloud and the devices in the customer networks are in different IP address domains and, thus, there may be conflicts where the IP address domain employed by the cloud service provider overlaps with IP address domains of customer networks (especially where customer applications utilize a combination of resources of the customer network and resources of the cloud service provider).
As such, while providing physically separate networks for different customers can ensure isolation of IP address domains, such a solution is highly inefficient and inflexible and, therefore, there is a need for a mechanism to effectively integrate the resources of a cloud service provider with existing resources of customer networks.